#ifndef _IMAGE_CACHE_H_
#define _IMAGE_CACHE_H_
#include "color.h"
class Image;
class ImageCache
{
public:
				ImageCache() : m_pImage(0) {};			
	virtual		~ImageCache() {};

	virtual void		Create(int	Width=1024, int Heigh=1024, int Depth=32) = 0;
	virtual void		ClearCache(COLOR c=0xff000000)=0;
	virtual bool		BeginCache() = 0;
	virtual void		EndCache() = 0;

	virtual void		Flush() = 0;
	virtual void		Recreate() = 0;

	Image*		GetImage() const { return m_pImage; };
	virtual void		SetTextureStage(int Stage) = 0;
	unsigned int		GetWidth() const { return m_Width; };
	unsigned int		GetHeight() const { return m_Height; };
	unsigned int		GetDepth() const { return m_Depth; };
protected:
	unsigned int		m_Width, m_Height, m_Depth;
	Image*		m_pImage;
};

#endif // _IMAGE_CACHE_H_